
# -*- coding: utf-8 -*-
from django import forms
from django.forms import ModelForm, ModelChoiceField,ModelMultipleChoiceField
from wal.expedicion.models import Expedicion, DetalleExpedicion
from wal.control.models import Stock
from wal.pedidos.models import Pedido, DetallePedido
from wal.clientes.models import Cliente
from wal.articulos.models import Articulo
from django.contrib.admin import widgets
from django.db.models import Q
class choiceName(ModelChoiceField):
    def label_from_instance(self, obj):
        name = obj.first_name +' '+ obj.last_name
        return name
    
class choiceMultipleName(ModelMultipleChoiceField):
    def label_from_instance(self, obj):
        name = obj.first_name +' '+ obj.last_name
        return name
    
class ExpedicionForm(ModelForm):
    fecha = forms.DateField(widget = widgets.AdminDateWidget(),label="* Fecha",help_text='Fecha en la que los artículos fueron despachados')
    class Meta:
        model = Expedicion
        exclude = ('nombre','pedido','cliente','proceso',)
        
class DetalleExpedicionForm(ModelForm):
    def __init__(self,pedido, *args, **kwargs):
        super(DetalleExpedicionForm, self).__init__(*args, **kwargs)
        detalles = Stock.objects.filter(pedido=pedido,stock__gt=0)
        list = []
        for det in detalles:
            if det.articulo not in list:
                list.append(det.articulo)
        self.fields['articulo'].queryset = Articulo.objects.filter(
                                                                   Q(nombre__in = list)|
                                                                   Q(familia__nombre='Ensamblados')).order_by("nombre")
    class Meta:
        model = DetalleExpedicion
        exclude = ('expedicion',)